1. Field of the Invention
The present invention relates generally to data transfers over an I/O bus, and more particularly, to Packetized SCSI Protocol command transfers over a SCSI bus.
2. Description of Related Art
Prior to the Packetized SCSI Protocol, the SCSI Protocol utilized the well-known SCSI bus phases, Message Out, Message In, Command, Data Out, Data In, and Status to exchange information and data between a SCSI initiator and a SCSI target over a SCSI bus. Only one command block (CDB) was transferred for each connection of a SCSI initiator to a SCSI target.
Typically, for a SCSI host adapter as the SCSI initiator, the SCSI host adapter waited for the SCSI bus to become free, arbitrated for the bus, and then selected a target. Usually, the SCSI host adapter sent three messages to the target and then changed the SCSI bus phase to phase Command. A sequencer on the host adapter moved a CDB from a sequencer control block (SCB) that was received from a host to a DMA channel that in turn transferred the CDB over the SCSI bus to the SCSI target.
After the SCSI target received the CDB, the SCSI target disconnected from the SCSI bus by changing the bus phase to phase Message In, and then sending one or two messages to the SCSI host adapter. After sending the messages, the SCSI target actually disconnected from the SCSI bus.
For the SCSI host adapter to send another CDB to this target, this complete sequence was repeated. The time between the SCSI target receiving the end of the first CDB and the beginning of the second CDB, as mandated by the SCSI specification, was a few microseconds, which was a significant amount of time compared with the total time required to execute the CDB. In addition, the time required by the sequencer to move each byte of the CDB from the SCB to the DMA channel was about 50 nanoseconds.
Another protocol, the Packetized SCSI Protocol, has been developed for executing information and data transfers over the SCSI bus. The formal definition of the Packetized SCSI Protocol is specified in “Information Technology—SCSI Parallel Interface(SPI-3),” Revision 13a, American National Standards Institute, New York, N.Y. (Jan. 12, 2000), which is incorporated herein by reference in its entirety as a demonstration of the knowledge of one of skill in the art. The Packetized SCSI Protocol enables a SCSI initiator to transfer multiple successive CDBs without the SCSI target having to disconnect from the SCSI bus between CDBs.
With the Packetized SCSI Protocol, information that was previously conveyed between the SCSI initiator and the SCSI target during bus phases Message, Command, and Status is now conveyed via packets, called information units, during data phases. Specifically, to capitalize on the higher data throughput during the SCSI data phases, the Packetized SCSI Protocol specifies that all information exchanged between a SCSI initiator and a SCSI target is done via information units (IU), in either phase Data In or phase Data Out phases exclusively. Each CDB is conveyed to a target via two packets.
FIG. 1A is an illustration of a definition of a byte data stream for a SPI L_Q information unit that is used in the Packetized SCSI protocol as the first of the two packets in a command block. This information unit definition was taken from the SCSI Parallel Interface (SPI-3) referenced above. Thus, the data in the twenty-four bytes is defined therein and so is known to those of skill in the art.
FIG. 1B is an illustration of a definition of a byte data stream for a SPI command information unit that follows the SPI L_Q information unit of FIG. 1A in the data stream and is the second of the two packets used to convey a CDB. This information unit definition also was taken from the SCSI Parallel Interface (SPI-3) referenced above. Thus, data in this packet is defined therein and so is known to those of skill in the art.
While the data streams for the information units of FIGS. 1A and 1B are known, the problem remains to get this data onto the SCSI bus so that the advantages of the Packetized SCSI protocol can be realized. For example, with the prior art SCSI host adapter, fifty nanoseconds were required to move each byte of the SCB to the DMA channel by the sequencer. This latency prevented realization of the full capability of the SCSI bus with the Packetized SCSI Protocol.